Junior

Общие

1. Что такое DevOps?
    
    DevOps - методология автоматизации технологических процессов сборки, настройки и развёртывания 
    программного обеспечения.

2. Вы набираете google.com в браузере. Расскажите как можно подробнее, что происходит в это время?
   
    dns request to hosts/router/provider/dns server
    dns answer from dns server with  ip address
    tcp connection
    http request
    http answer

3. Как работает HTTPS?
 
    браузер посылает запрос к сайту
    сайт отправляет в ответ копию сертификата
    браузер проверяет подлинность сертификата — узнаёт у центра сертификации, который его выдал
    если сертификат не поддельный, сайт и браузер тайно договариваются о секретном симметричном ключе
    С помощью этого ключа браузер и сайт устанавливают защищённое HTTPS-соединение.

4. Объясните концепцию Infrastructure as Code, зачем это нужно и какие проблемы решает?

    подход для управления и описания инфраструктуры через конфигурационные файлы
 
Linux

5. Опишите общую архитектуру операционной системы.

    kernel side - kernel modules, kernel, system libraries
    user side - system softwares, user processes, user utilites, compilers

6. Опишите основное предназначение операционной системы.
    
    Исполнение запросов программ (ввод и вывод данных, запуск и остановка других программ, выделение и 
    освобождение дополнительной памяти и др.). Загрузка программ в оперативную память и их выполнение. 
    Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).

7. Зачем нужны файловые системы? Какие существуют?

    Файловая система обеспечивает способ разделения данных на диске на отдельные части, которые являются файлами.
    fat32, ntfs, ext3, ext4 

8. В чем разница между виртуализацией и контейнеризацией?

    Виртуальная машина изолируется полностью средствами процессора (технологии Intel, AMD, VMX). Контейнер 
    работает на ядре хостовой операционной системы и использует для изоляции возможности не железа, а 
    операционной системы, так называемое пространство имён.

9. В чем преимущества контейнеров?

    Они позволяют запускать приложения в изолированном окружении, но при этом потребляют намного меньше ресурсов.

10. Какова файловая структура в Linux (UNIX) системах, расположенных в /etc, /dev, /proc, /sys, /lib, /var (несколько директорий на выбор)?

    иерархическую структуру каталогов и файлов (в виде дерева)
    /etc - config files 
    /dev - device files 
    /proc - processes 
    /sys - system info 
    /lib - libraries eg .so files
    /var - variabes, /var/mail, /var/lib, /var/logs, /var/cashe

11. Что такое Load Average?

    Средняя загрузка — среднее значение загрузки системы за некоторый период времени, как правило, 
    отображается в виде трёх значений, которые представляют собой усредненные величины за последние 1, 5 и 15 минут.

12. В чем разница между soft и hard symlink?

    softlink - представляет собой небольшой файл указателя, который связывает имя файла с путем. 
    Это всего лишь ярлык к исходному файлу
    
    hardlink - pеплика исходного файла, которая служит ссылкой или указателем на тот же файл, что 
    облегчает доступ даже к исходному файлу, удаленному или перемещенному из его исходного местоположения.

13. Как работают file permissions, зачем директории права исполнения (+x)?

    drwxr-xr-x+  4 alexspongerman  staff       128 Jun 17 17:40 Public

    u: Это для владельца.
    g: Это для группы.
    o: Это для всех остальных.
    a: Это изменит разрешения для всего вышеперечисленного.
    d: directory

    for directory x - cd to directory, r - read inside catalog of files, w - create file
    for file x - execute, r -read, w - write

14. Что такое zombie process?

    дочерний процесс в Unix-системе, завершивший своё выполнение, но ещё присутствующий в списке процессов 
    операционной системы, чтобы дать родительскому процессу считать код завершения

15. С помощью чего можно собрать информацию о текущем состоянии процессора, памяти, диска, сети?

    top, free, df, ifconfig

16. Что такое swappiness?

    process for writing info to swap( ram memory on hird drive )

17. Как посмотреть свободное место на диске?

    df, fdisk

18. Что такое inode?

    file identificator in filesystem

19. Расскажите поэтапно процесс загрузки Linux с момента включения питания компьютера.

    bios
    mbr - prebootloader
    bootloader
    kernel
    init
    runlevel

20. Что произойдет при выполнении команд:

1. cat file1 > file2
    
    rewrite info from file1 to file2

2. cat file1 >> file2

    add info to file2 from file 1 in the end of file

21. В чем разница между Ctrl+C и Ctrl+Z?

    Ctrl+C - kill app
    Ctrl+Z - pause/stop app

22. Как перенаправить одновременно stderr и stdin?

    1> capture.txt 2> error.txt 

23. Как убить процесс? Какие есть типы сигналов?

    SIGKILL	9	- Завершение	Безусловное завершение
    SIGSTOP	23	Остановка процесса	Остановка выполнения процесса

    pid - process identificator
    kill pid

24. Что делает команда grep?

    filter of stdout

25. Что такое скрипт bash?

    сценарии командной строки, написанные для оболочки bash.

26. Какие типы переменных используются в bash?

    Типы переменных в bash отсутствуют. Переменная в bash может представлять собой число, символ или строку символов

27. Что выведут команды:

1. echo ${hostname};
    none
2. echo $(hostname);
    hostname of maschine
 

Networks

28. Что такое модель OSI, TCP/IP?

7. Прикладной (application)	- HTTP, FTP, POP3, SMTP, WebSocket
6. Представления (presentation)	Представление и шифрование данных	- ASCII, EBCDIC, JPEG, MIDI
5. Сеансовый (session)	Управление сеансом связи	- RPC, PAP, L2TP, gRPC
4. Транспортный (transport)	Сегменты -Прямая связь между конечными пунктами и надёжность -	TCP, UDP, SCTP
3. Сетевой (network) - Определение маршрута и логическая адресация	IPv4, IPv6, IPsec, ICMP, BGP, OSPF
2. Канальный (data link) - PPP, IEEE 802.22, Ethernet, ARP, MAC, VLAN
1. Физический (physical) - wireless, optic, wired

29. Для чего нужны network masks?

    Маска подсети указывает, какие разряды IP-адреса относятся к адресу хоста. how many addresses in than subnetwork

30. Структура IP-пакета. Из чего состоит? Что такое фрагментация и почему она происходит?
    
    header, payload, and trailer

    Фрагмента́ция — процесс дробления чего-либо на множество мелких разрозненных фрагментов.

31. Что такое коллизия? Почему возникает?

    наложение двух и более кадров от станций, пытающихся передать кадр в один и тот же момент времени в 
    среде передачи коллективного доступа.

32. Что такое прокси?

    Прокси-сервер — промежуточный сервер в компьютерных сетях, выполняющий роль посредника между 
    пользователем и целевым сервером, позволяющий клиентам как выполнять косвенные запросы к другим 
    сетевым службам, так и получать ответы.

33. Что такое firewalls и зачем они нужны?
    
    traffic blockers

34. Что такое NAT и для чего он нужен?
    
    network adress translation - технология, которая преобразует приватные IP-адреса во внешние и наоборот

35. Какие типы IP-адресов вы знаете?

    white ip
    grey ip
    dynamic ip
    static ip

36. По какому порту и протоколу работают Ping и Traceroute?

    Ping uses ICMP(Internet Control Message Protocol).it does not use TCP or UDP.
    traceroute The default is 33434.

Clouds

37. В чем разница между IaaS, PaaS и SaaS?

    в IaaS клиент получает только инфраструктуру, в PaaS — инфраструктуру и подготовленное для разработки 
    приложений ПО, в SaaS — готовое работающее в облаке приложение.

38. Что такое VPC и из каких компонентов должно состоять?

    VPC CIDR Block
    Subnet
    Gateways
    Route Table
    Network Access Control Lists (ACLs)
    Security Group

39. Что такое cloud-init? init/systemd/upstart configs?

    Cloud-init — широко используемое средство для настройки виртуальной машины Linux при ее первой загрузке
 

Automation

40. Что такое IaaC и зачем он нужен?
 
    IaaS клиент получает только инфраструктуру and conficure it as a code only

41. Что такое Terraform?

    программное обеспечение с открытым исходным кодом, созданное HashiCorp. Пользователи определяют 
    и предоставляют инфраструктуру центра обработки данных с помощью декларативного языка конфигурации, 
    известного как HashiCorp Configuration Language или JSON

42. Какие инструменты автоматизации вы знаете?

    ansible, python, bash
 

Information Security

43. В чем разница между аутентификацией и авторизацией?

    Аутентификация — процедура проверки подлинности, например проверка подлинности пользователя путем 
    сравнения введенного им пароля с паролем, сохраненным в базе данных. Авторизация — предоставление 
    определенному лицу или группе лиц прав на выполнение определенных действий.

44. Сертификаты. Как работает HTTPS? Что такое certificate ciphers?

    браузер посылает запрос к сайту
    сайт отправляет в ответ копию сертификата
    браузер проверяет подлинность сертификата — узнаёт у центра сертификации, который его выдал
    если сертификат не поддельный, сайт и браузер тайно договариваются о секретном симметричном ключе
    С помощью этого ключа браузер и сайт устанавливают защищённое HTTPS-соединение. Ключ шифрует 
    данные – мошенники не могут получить доступ к паролям и номерам кредитных карт пользователей.
    
    Cipher Suite - комбинация шифров (шифровальная система) - представляет собой комбинацию алгоритмов, 
    используемых для согласования параметров безопасности во время установления связи SSL / TLS.

45. Как безопасно передать данные своему коллеге?

    using secured technology: sftp, ssh, vpn

46. ​​Что такое MFA, TOTP?

    MFA TOTP (алгоритм одноразовых паролей на основе времени)

Виртуализация

47. В чем разница между виртуализацией и контейнеризацией? В чем плюсы и минусы?

    Виртуальная машина изолируется полностью средствами процессора (технологии Intel, AMD, VMX). Контейнер 
    работает на ядре хостовой операционной системы и использует для изоляции возможности не железа, а 
    операционной системы, так называемое пространство имён.

48. Как при запуске Docker-контейнера «повесить» его из 80-го порта в контейнере на 8081 на хост?
 
    docker run --name web_server -d -p 8081:80 nginx

49. Как передать в виртуальную машину USB device?

    В настройках ВМ добавьте устройство Host USB device и нажмите Add;
    В выпадающем списке выберите подключенное USB устройство, которое нужно добавить;

50. Docker-контейнер потребляет многие SWAP. Что делать?
    
    not enough free memory

CI/CD

51. Что такое Continuous Integration и Continuous Deployment? В чем разница между Continuous Deployment и Continuous Delivery?

    непрерывная доставка — это серия практик, направленных на то, чтобы обновления программного обеспечения 
    происходили практически постоянно.
    
    непрерывное развёртывание - отвечает за то, чтобы весь новый функционал после тестирования сразу же попал в
    основную программу без ручного вмешательства инженеров DevOps.

    Непрерывная интеграция - является ключевым компонентом практики Agile Development. Основой данной практики 
    является постоянное попадание кода в центральный репозиторий после успешного запуска тестов.

52. Опишите основные этапы CI/CD.

    Написание кода
    Сборка
    Ручное тестирование
    Релиз
    Развертывание
    Поддержка и мониторинг
    Планирование

53. Опишите пример процесса CI (и/или CD), который начинается с момента, когда разработчик запушил изменения/PR в Git?

54. Расскажите о разновидностях тестов, которые мы можем использовать в CI пайплайне.

55. Какие инструменты CI вы использовали? Есть ли опыт работы с Jenkinsfile?

56. Какие виды тестов вы знаете и зачем они нужны?

    юнит-тесты,
    статическая инспекция исходного кода,
    развертывание тестовых стендов и автоматизированное интеграционное тестирование,
    автоматизированное нагрузочное тестирование.
 

Development

57. Git. Как решить merge conflict? Что такое rebase, cherry-pick?

    git merge --abort
    git reset

    rebase — это открепить ветку (branch), которую вы хотите переместить, и подключить ее к другой ветке
    git cherry-pick  позволяет забрать один коммит из другой ветки и вставить его в текущую

58. В чем разница между git merge и git rebase?

    merge добавляет коммит мержа и сохраняет историю коммитов
    rebase применяет все коммиты на целевую ветку и удаляет историю коммитов

59. Какие UI использовали?

    vscode

60. Какая разница между GitLab/GitHub/Bitbucket?

    github - more support, more opensource
    gitlub - close projects for companies

61. Какая разница между Git pull/Git fetch?

    git pull — это шоткод для последовательности двух команд: git fetch (получение изменений с сервера) и 
    git merge (сливание в локальную копию).

62. Что такое Git-Flow?

    Git-flow — альтернативная модель ветвления Git, в которой используются функциональные ветки и несколько 
    основных веток

63. Версионирование. Какая разница между SemVer и CalVer?

    SemVer   eg. 1.0.2
    МАЖОРНУЮ версию, когда сделаны обратно несовместимые изменения API.
    МИНОРНУЮ версию, когда вы добавляете новую функциональность, не нарушая обратной совместимости.
    ПАТЧ-версию, когда вы делаете обратно совместимые исправления.
    
    CalVer - eg. 2020.1.4017-pre
    CalVer could be comprised of a few segment of numbers and modifiers. The 1st segment usually container 
    the year information, which could be full year (YYYY), short year (YY), or zero-padded year (0Y, 
    relative to year 2000). The 2nd segment could be either another calendar information (e.g. month — MM/0M), 
    or an incremental release number of the year.

64. Тестирование. Какие существуют виды? Как писать тесты, TDD?

    unit tests
    автоматизированное нагрузочное тестирование.

65. В чем разница между компилируемыми и интерпретационными языками программирования?
 
    use bin file, more speed, more resources VS easie, need install interpetor, slow
 

Monitoring/Logging

66. Какие метрики нужно собирать? Разница между infrastructure и application monitoring.

    infrastructure - hardware monitoring
    application - software monitoring

67. Какая разница между pull и push model в системах мониторинга?

    PUSH - удобна для использования в динамически создаваемых машинах (например из докер-контейнеров), 
        так как в противном случае Система мониторинга должна будет узнавать о новых хостах для их опроса,
        можно задавать глубину мониторинга именно на машинах, добавление новых иснтансов автоматом добавит 
        метрику без настройки системы мониторинга
        Передача данных в открытом виде по сети, при наличии ПД в метриках есть риск утечки данных
        так же есть риск потери данных при недоступности системы мониторинга (принимающей метрики)
        передаваться данные должны на один ресурс для сбора (одну систему мониторинга) одним источником
    PULL - контроль над метриками с единой точки, возможность конеккта по SSL к агентам.
        более высокий уровень контроля за источниками метрик ,т.е. всегда известно кто откуда что передает,
        возможность ставить в Downtime (отключение алертинга) целых систем без потери передаваемых данных (хотя 
        думаю в Push так же реализуемо)
        Ну и то что разными системами мониторинга можно получать одни и теже метрики, можно выподнять запросы 
        метрики с изменяемой переодичностью 
        так же запрашивать метрики в ручном режиме в обход систем сбора 
        минус - неудобство для динамических машин (докер-контейнеры) нужно динамически собирать статистику о 
        наличии машин, нужен дополнительный оркестратор

68. Какая разница между Black box и White box monitoring?

    Под Black Box администрированием (аналогия с чёрным непрозрачным наглухо закрытым ящиком, с кнопочками 
    и лампочками) я понимаю ситуацию, когда есть некая система, есть инструкции по её эксплуатации, какой-то 
    набор трюков, вопросов и ответов в гугле. Но информации как устроена система нет, мы не знаем (или не хотим 
    знать) что у неё внутри, как она работает, что там внутри с чем и каким образом взаимодействует. Да это и 
    не важно: если она эксплуатируется в штатных условиях мы просто знаем как ей пользоваться и чего ожидать. 
    Заранее описан набор команд/действий, приводящих к нужным нам результатам и нам не важно как система это 
    делает, мы просто «заказываем» и получаем результат. Или, если образно, заранее описано (или найдено методом 
    тыка, то есть опытным путём), какую кнопку надо нажать, чтоб загорелась нужная комбинация лампочек

    Соответственно White Box — это когда ящик прозрачный. Мы имеем возможность посмотреть (а также понять) как 
    система устроена. При таком раскладе инструкция вторична, она позволяет понять как предполагается использовать 
    систему и как она устроена, но не ограничивает нас этим. Есть понимание как устроена система и, как следствие, 
    как она поведёт себя в разных условиях, в том числе и в не описанных в документации.

69. Расскажите о подходах к сбору application логов.

    metrics exporter
 
Middle

Linux

1. Опишите архитектуру ядра Linux.

    раздел управления памятью
    раздел управления процессами
    раздел управления драйверами устройства
    часть файловой системы
    часть управления сетью

2. Что такое ядро ​​и каково его предназначение?

    Ядро является ядром операционной системы, с наиболее основной функцией операционной системы, которая 
    отвечает за управление процессом, памятью, драйвером устройства, файлами, файлами и сетевыми системами, 
    непосредственно определяет производительность и устойчивость системы.

3. Опишите общие части файловой системы Unix/Linux, архитектуру файловой системы.
   
    иерархическую структуру каталогов и файлов (в виде дерева)
    /etc - config files 
    /dev - device files 
    /proc - processes 
    /sys - system info 
    /lib - libraries eg .so files
    /var - variabes, /var/mail, /var/lib, /var/logs, /var/cashe

4. В чем разница между RedHat и Debian?

    redhat - mo stable release, less updates
    debian - more features more updates, less stability
    different packet managers

5. В чем разница между /proc и /sys?

    /proc - Это файловая система, представленная в ядре Linux, и механизм изменения настроек ядра при 
    запуске структуры данных ядра. Proc - это псевдо файловая система, которая существует только в памяти,
    не занимая космическое пространство. Он обеспечивает интерфейс к операции доступа к данным ядра системы 
    в файловой системе. Пользователи и приложения могут получить системную информацию через ProC и могут 
    изменить определенные параметры ядра. Благодаря информации системы, если процесс динамически изменяется, 
    файловая система PROC динамически считывается требуемой информации из системы, а также отправлена ​​пользователем 
    или приложением считывает файл ProC.Есть три важных каталога в соответствии с / proc: net, scsi и sys

    /sys - Каталог пишется и может быть доступен или изменен или изменен для доступа или изменение ядра. 
    Виртуальный файл PREC может иметь внутренние форматы, такие как / proc / scsi / scsi, который легко 
    доступен, и формат чтения и записи отличается, представляющий разные операции, содержимое, чтение данного 
    файла в приложении, как правило, является разбором строки Требуется, и вам нужно использовать строковый 
    формат для записи строки в указанном формате при записи; в принципе Compaize, / sys design - это файл 
    свойства, файл атрибута SYS, как правило, только одно значение, чтение или писать напрямую. Весь / proc / scsi 
    каталог был отмечен в ядре в качестве преданца, и его функция была полностью заменена на файл атрибута 
    соответствующих / sys. Недавно разработанный механизм ядра должен попытаться использовать механизм / sys для 
    резервирования proced в чистую "файловую систему процесса".

6. Ситуация: указывает, что на диске занято 50% места, а сделать файл даже под root юзером не можем. В чем проблема?

    Удаление файлов занятых процессом - sudo lsof / | grep deleted
    Недостаточно Инод (Inode) - sudo df -i /
    Плохие блоки - sudo fsck -vcck /dev/sda2

7. Мы удалили файл, открывший приложение. Как нам его восстановить?

    Первым делом нам нужно найти открытый файл с помощью программы lsof: - $ sudo lsof | grep filename
    Дальше восстанавливаем его: - $ sudo cp /proc/2031/fd/2 /home/placetosave

8. Как найти PID процесса, его стартовые параметры?

    ps aux | grep имя_процесса
    
    КАКИМ ПРОЦЕССОМ ЗАНЯТ ФАЙЛ LINUX - lsof /home/sergiy/трек.mp3 

9. Как проверить, открыт ли порт на удаленном хосте, локальном хосте?

    nmap 192.168.1.8 -p 22
    netstat -tulnp
    netstat -a

10. Как искать файл по его содержимому?

    grep -r -n «text» /path

11. Что такое SSH, как организовать доступ на сервер без пароля или с определенных хостов? Как ограничить доступные для выполнения команды?

    generate ssh key 

12. Как проверить потреблённые ресурсы во время сеанса SSH?

    cat /proc/meminfo
    cat /proc/cpuinfo
    fdisk -l

13. Что означает разрешение на файл 755?
    
    -rwxr-xr-x

14. Что такое SELinux и зачем он нужен?

     — система принудительного контроля доступа на уровне ядра

15. Как определить PCI-устройство в системе, например, RAID controller?

    lspci -nn

16. Как переименовать устройство, например, сетевую карту или диск?

    nano /etc/udev/rules.d/10-local.rules

17. Что такое LVM? Какие знаете примеры использования?

    logical volume manager

    LVM позволяет добавить один или несколько дисков меньшей емкости, расширив логический том за счет их пространства.

18. Что такое root reserved space?

    По умолчанию резервируется 5% пространства для root пользователя, чтобы не забить весь диск и, тем самым, 
    не нарушить работу операционной системы

19. Что такое exit code и как его узнать?

20. Почему вывод df -h указывает, что на диске занято мало места, но система не дает записать файл с сообщением “no space left on device”?

    Удаление файлов занятых процессом - sudo lsof / | grep deleted
    Недостаточно Инод (Inode) - sudo df -i /
    Плохие блоки - sudo fsck -vcck /dev/sda2

21. В чем разница между command1 & command2 и command1 && command2, а также command1 && command2 || command3?

    command1 & command2 - run command2 in background
    command1 && command2 - run command2 after end of command1
    command1 && command2 || command3? - run command2 after end of command1 OR run command3

22. Из сети резко вырос исходящий трафик на 25-й порт. Как, имея доступ на гейтвей, обнаружить вредителя из внутренней сети?

    netstat -a -b

23. Как затюнить параметры Linux Kernel?

    kernel compilation -i config file

24. Что такое ulimits?

    ulimit - ограничения текущего процесса, например количество одновременно открытых файлов. Справка 
    man limits.conf. Конфигурационный файл находится /etc/security/limits.conf.

25. В чем разница между символическими и hard links?
    
    softlink - представляет собой небольшой файл указателя, который связывает имя файла с путем. 
    Это всего лишь ярлык к исходному файлу
    
    hardlink - pеплика исходного файла, которая служит ссылкой или указателем на тот же файл, что 
    облегчает доступ даже к исходному файлу, удаленному или перемещенному из его исходного местоположения.

26. Что такое фрагментация ext3 и ext4?

    Дефрагментация «налету» (Файловая система ext3 не особо склонна к фрагментации, но все же такое 
    неприятное явление имеется. В ext4 производится дефрагментация «на лету», что позволяет повысить 
    производительность системы в целом)

27. Зачем файловые системы ext* резервируют 5% места?

    ext3 и ext4 резервируют 5% от общего пространства для приложений, выполняющихся от имени root

28. Как увеличить размер файловой системы?

    fdisk
    sudo e2fsck -f /dev/sda1
    resize2fs

29. Можем ли мы уменьшить размер файловой системы?

    resize2fs

30. Что такое chroot и для чего он нужен?

    chroot — операция изменения корневого каталога в Unix-подобных операционных системах.
    может использоваться как упреждающий способ защиты от бреши в безопасности, предотвращая возможного 
    атакующего от нанесения любых повреждений или зондирования системы с помощью скомпрометированной программ

31. У нас есть Linux box с 2 Гб оперативной памяти и Java-приложение, которое пытается выделить 4 Гб во время запуска. Удастся ли это?

32. Есть приложение, которое читает файл, который пользователь пытается удалить. Что случится? Можно ли удалить этот файл? Можно ли восстановить этот файл?

33. Какие механизмы создания процессов в Linux вы знаете?

    Для создания процессов используются два системных вызова: fork() и exec.

34. Сравните systemd и init system.

    systemd — подсистема инициализации и управления службами в Linux

35. У вас есть папка с большим количеством файлов, и вы хотите удалить все файлы с именами, начинающимися на A (прописная буква). Но команда rm –f A* выдает Argument list too long. Как удалить эти файлы?

    ls | grep A* | xargs rm
    echo *.jpg | xargs -n 100 rm

36. Вы начинаете удалять файлы первым методом из предыдущего вопроса, но каждый rm запрашивает подтверждение. Это очень долго. Как можно ускорить эту операцию?

    ls | grep A* | xargs rm
    echo *.jpg | xargs -n 100 rm

Networks

37. Расскажите о модели OSI. Опишите функции и назначение каждого уровня.

38. Какие сетевые топологии вы знаете? Опишите разницу между ними.
  
    star 
    mesh
    tree
    ring 

39. Зачем нужен IP-адрес, если MAC-адрес уникален? Разве мы не можем общаться только по MAC-адресу?

    hard organize routing

40. В чем разница между концентратором и коммутатором L2 в сетях Ethernet?

    Концентратор передает принятые пакеты на все свои порты. При этом общая скорость, 
    например 100Мбит/с, разделяется между всеми подключенными пользователями. Коммутатор на 
    базе таблицы МАС-адресов устанавливает прямые соединения между портами.

41. Что такое VLAN и для чего существует разделение на виртуальные локальные сети?

    VLAN (Virtual Local Area Network, виртуальная локальная сеть) — это функция в роутерах и коммутаторах, 
    позволяющая на одном физическом сетевом интерфейсе (Ethernet, Wi-Fi интерфейсе) создать несколько 
    виртуальных локальных сетей. VLAN используют для создания логической топологии сети, которая никак 
    не зависит от физической топологии.

42. Какой номер порта используется для PING-коммуникации?

43. Что такое сеанс связи? Какой алгоритм использует TCP для доставки?

    Используя трехкратное рукопожатие, между двумя узлами создаётся сеанс связи.
    При отправке пакетов узлы последовательно нумеруют их и рассчитывают контрольную сумму.
    Поскольку все пакеты имеют последовательные номера, то становится видно если какие-то из них 
    отсутствуют. В этом случае отправляется запрос на повторную отправку пакета.
    Если для какого-то пакета не совпала контрольная сумма, то отправляется запрос на повторную отправку пакета.
    При открытии даже одной веб странички создаются несколько TCP соединений

44. В чем основное отличие между TCP и UDP?

    UDP использует простую модель передачи, без явных «рукопожатий» для обеспечения надёжности, 
    упорядочивания или целостности данных. Датаграммы могут прийти не по порядку, дублироваться или 
    вовсе исчезнуть без следа, но гарантируется, что если они придут, то в целостном состоянии. UDP 
    подразумевает, что проверка ошибок и исправление либо не нужны, либо должны исполняться в приложении

45. Зачем нам маршрутизатор по умолчанию?

    routing between subnetworks

46. Как хост решает DNS по умолчанию?

    localhost - /etc/hosts    -   8.8.8.8

47. Компьютер начал получать IP-адрес из другой сети (есть подозрение, что в сети работает другой DHCP-сервер): как его найти и отключить? Какие методы защиты от такой проблемы?

    dhcp snooping
    config trusted ports for dhcp snooping for dhcp server on l2 switch

48. Мы будем мигрировать сайт на новый IP-адрес. Как сделать, чтобы пользователи этого практически не заметили?

    use dns name

49. Что такое socket?

    Со́кет — название программного интерфейса для обеспечения обмена данными между процессами.

50. Как узнать, какие удаленные хосты подключаются к хосту через порт 8888? (с помощью команд и не используя /proc или /sys).

    nmap
    netstat

51. У нас есть несколько сетевых карт. Как увеличить пропускную способность сервера?

    use bonding

52. Как проверить открытые порты на удаленном сервере без команд Netcat или Nmap Linux?

    telnet
 

Container orchestration

53. В чем преимущества Kubernetes как платформы?

    Автоматическая отказоустойчивость
    автоматическое вертикальное и горизонтальное масштабирование
    Программное управление релизами

54. Что такое control plane и из каких компонентов состоит?

    kube-apiserver
    etcd 
    kube-scheduler
    kube-controller-manager 
    cloud-controller-manager

55. Какие CNI вы использовали и чем они отличаются?

    calico
    flanel

56. Чем отличается managed Kubernetes от self-deployed?

    self deployed kubernetes - run on own bare metal or VPC
    managed - created and setting up by provider 

57. Как можно контролировать размещение подов в кластере? (taints/tolerations, affinities, topologies etc.)

     taints и tolerations. С его помощью мы явно указываем, что на этих машинах могут запускаться только 
     контейнеры, у которых прописан toleration к данному taint.

     nodeAffinity Не смотря на простоту и эффективность механизма nodeSelector – механизм это 
     прямолинейный и не особенно гибкий. Авторы kubernetes предлагают более мощный, гибкий (а так 
     же – сложный и неудобный) механизм – nodeAffinity. Язык описания nodeAffinity предлагает 
     несколько мощных возомжностей

58. Скейлинг кластера. Cluster autoscaler vs HPA vs VPA? Как сделать zero-downtime node decommission/cluster upgrade? PDB? Lifecycle hooks?

    Cluster Autoscaler (CA): adjusts the number of nodes in the cluster when pods fail to schedule or 
    when nodes are underutilized.
    Horizontal Pod Autoscaler (HPA): adjusts the number of replicas of an application.
    Vertical Pod Autoscaler (VPA): adjusts the resource requests and limits of a container.

59. Какие способы для внешнего доступа к кластеру? ingress, node port, port-forward и т. д.

    ClusterIP — сервис Kubernetes по умолчанию. Он обеспечивает сервис внутри кластера, к которому 
    могут обращаться другие приложения внутри кластера. Внешнего доступа нет.
    NodePort — самый примитивный способ направить внешний трафик в сервис. NodePort, как следует из 
    названия, открывает указанный порт для всех Nodes (виртуальных машин), и трафик на этот порт 
    перенаправляется сервису.
    LoadBalancer — стандартный способ предоставления сервиса в интернете. На GKE он развернет 
    Network Load Balancer, который предоставит IP адрес. Этот IP адрес будет направлять весь трафик на сервис.
    Ingress сам по себе не сервис. Он стоит перед несколькими сервисами и действует как 
    «интеллектуальный маршрутизатор» или точка вхождения в кластер.

60. С каким PID запускается процесс в контейнере?

    pid=1

61. Что лучше использовать для изоляции окружения – Vagrant или Docker?

    Vagrant

62. Какой инструмент оркестрирования контейнеров использовали? (Swarm, Kubernetes, Openshift, Rancher и т. д.)

    kubernetes

63. Что происходит в Kubernetes после запуска kubectl (API, ReplicaSet Controller, storage back-end, scheduler, kubelet, worker node, pod)?

64. Какая разница между pod и контейнером в K8s?

    containet run inside pod 

65. Как мы можем сделать любой микросервис, работающий на K8s, доступным из внешней среды?

    loadbalancer
    proxy
    metallb

Виртуализация и контейнеризация

66. Какие типы виртуализации вы знаете?

    Аппаратная виртуализация - hipervisor
    Виртуализация рабочих столов - 
    Виртуализация дискового пространства - NAS, 
    Виртуализация приложений
    Виртуализация сети
    Виртуализация систем хранения

67. Как работает Docker на macOS/Windows?

    docker run in "linux vm" on OSX and windows

68. Что такое Docker-image и Docker-контейнер? Как они между собой связаны?

    (Docker Image) - это неизменяемый файл, содержащий исходный код, библиотеки, зависимости, 
    инструменты и другие файлы, необходимые для запуска приложения.
    (Docker Container) - это виртуализированная среда выполнения, в которой пользователи могут 
    изолировать приложения от хостовой системы. Эти контейнеры представляют собой компактные портативные 
    хосты, в которых можно быстро и легко запустить приложение.

69. Каковы основные отличия между контейнерами докеров и виртуальными машинами?

    same as CT vs VW

70. Что такое image layer? Какое максимальное количество layers возможно? Почему нужно пытаться иметь малое количество layers? Какое оптимальное количество?

    Метаданные — дополнительная информация о слое, которая позволяет докеру сохранять информацию 
    во время выполнения и во время сборки.

71. Как в виртуальной машине изменить размер диска после создания? Что нужно сделать с гостевой ОС?

    Выберите одну из своих виртуальных машин в списке и используйте ползунок «Размер» или введите 
    необходимое значение размера
    encrease disc size with fdisk

72. Как в Docker реализовано ограничение ресурсов?

    docker run -tid --name cpu512 --cpu-shares 512 ubuntu:stress stress -c 10
    docker run -tid --name cpu1024 --cpu-shares 1024 ubuntu:stress stress -c 10

73. Существует виртуальная машина, к которой потерян доступ. Как, имея доступ к диску, восстановить root пароль/SSH-ключ?

    Перезагрузить сервер.
    До начала загрузки операционной системы изменить параметры загрузки ядра в меню загрузчика GRUB.
    Загрузить операционную систему в однопользовательском режиме (single-user mode).
    Задать новый root-пароль без ввода старого пароля.

    Можно напрямую редактировать /etc/shadow — нужно удалить хеш пароля.
    Например строка вида root:xxx:yyy:zzz:www:rrr::: -удалим xxx, пароль будет пустой, потом его 
    можно создать командой passwd

74. Оптимизировать Dockerfile, объяснить, что и почему так:

FROM golang 

RUN apt install -y pkg1 pkg2 pkgN # Dependencies for app 

COPY. .

RUN go build -o app main.go

CMD ./app

FROM golang:1.16-alpine
RUN apt update
RUN apt install -y pkg1 pkg2 pkgN
WORKDIR /app
COPY . /app
RUN go build -o app main.go
CMD ["go-main-app"]

75. Что такое IPVS и какой у него функционал?

    Режим IPvs вводится в Kubernetes V1.8 и входит в бета в V1.9. Режим IPTables добавляется в V1.1 и 
    становится режимом работы по умолчанию, поскольку V1.2. IPvs и iPtables основаны на NetFilter. 
    Разница между режимом IPvS и режимом IPTables выглядит следующим образом:

    IPvs обеспечивает лучшую масштабируемость и производительность для больших кластеров.
    IPvs поддерживает более сложные алгоритмы балансировки нагрузки, чем iptables (минимальная нагрузка, 
    минимальное соединение, местоположение, взвешивание и т. Д.).
    IPvs поддержка сервера проверки здоровья и повторения соединения и т. Д.

76. Какова структура API в Kubernetes?

    Основной реализацией API-сервера Kubernetes является kube-apiserver. kube-apiserver предназначен 
    для горизонтального масштабирования, то есть развёртывание на несколько экземпляров. Вы можете 
    запустить несколько экземпляров kube-apiserver и сбалансировать трафик между этими экземплярами.

77. Что такое operators и зачем они нужны?

    Kubernetes operator is an application-specific controller that extends the functionality of the 
    Kubernetes API to create, configure, and manage instances of complex applications on behalf of a Kubernetes user
 

CI/CD

78. Какие стадии должны быть в любом пайплайне (lint, test, build, deploy etc.)?

    test, build, deploy, Develop

79. Как и где хранить build artifacts?
    
    dockerhub
    github
    nexus

80. Что такое артефакт?

    build result

81. Есть два бренча: dev и stage. Мы забросили Dockerfile в dev, а затем сбилдили в dev и stage. Это будет одним артефактом или разными?

    different

82. Что вы использовали для автоматизации настройки Jenkins и GitLab CI?

    jenkins, github actions

83. Сравните CI инструментов: Jenkins, GitLab CI, AWS Code Pipeline, GCP cloudbuild, GitHub actions, Circle CI.

84. Deployment strategies. Какие существуют и чем отличаются (recreate, blue-green, canary etc.)?
    
    A blue/green deployment is a deployment strategy in which you create two separate, but identical 
    environments. One environment (blue) is running the current application version and one 
    environment (green) is running the new application version.

85. Как реализовать СI/CD для программы, которая зависит от нескольких других программ?

86. GitOps. В чем его преимущества и недостатки?

    argocd
 
Clouds and Automation

87. Какова роль и преимущества облачных сервисов для DevOps?

88. Что такое immutable infrastructure? Как достичь? В чем преимущества и недостатки? Packer, AMI и т. д.

    packer and terraform, use cloud init templates for provisioning

89. Структура Terraform. Как организовать multi-environment project? Terraform workspaces?

    main.tf — содержит настройки необходимых провайдеров Terraform.
    variables.tf — переменные, которые используются в конфигурации. Вынесение часто изменяемых 
    параметров в переменные позволяет легко менять конфигурацию инфраструктуры для нового проекта.
    network.tf — описание облачной сети.
    kubernetes.tf — описание ресурсов Kubernetes.

    use separate directories and workspaces

90. Лучшие практики по использованию многих Terraform states.

    Terraform must store state about your managed infrastructure and configuration. This state is used 
    by Terraform to map real world resources to your configuration, keep track of metadata, and to 
    improve performance for large infrastructures.
    Состояние Terraform — это место, где Terraform хранит информацию о ресурсах, которые вы создали с его помощью.

91. Как организовать доступ команде разработчиков к AWS/GCP/Azure? Role-based access, assume role, SSO.

92. Что такое Terraform provider, module?

    A provider is a Terraform plugin that allows users to manage an external API. Provider plugins like 
    the AWS provider or the cloud-init provider act as a translation layer that allows Terraform to 
    communicate with many different cloud providers, databases, and services.
    A Terraform module is a collection of standard configuration files in a dedicated directory.

93. Как версионировать Terraform modules?

    What's special is minimum specification, which is ~>. ~> allows you flexibility with your versioning. 
    It allows you to say, "0.12.0," and when you use ~> that allows you to have all 0.12.x patch versions. 

94. Когда нужно использовать local-exec и remote-exec?

    The local-exec provisioner invokes a local executable after a resource is created. This invokes a 
    process on the machine running Terraform, not on the resource. See the remote-exec provisioner to 
    run commands on the resource.

95. Что такое golden image и как его создать?

    A golden image is a base image on top of which developers can build applications

Monitoring/Logging

96. Как мониторинг помогает поддерживать всю архитектуру системы?

97. Какие инструменты мониторинга вы использовали?

    Prometheus
    ELK

98. Что такое медиана и процентиль?

99. Что такое SLI, SLO, SLA? Зачем это нужно?

    SLA (соглашение об уровне обслуживания) — это соглашение между поставщиком и клиентом об измеримых 
    показателях, таких как время безотказной работы, время реагирования, а также мерах ответственности.
    SLO (цель уровня обслуживания) — это соглашение в рамках SLA о конкретном показателе, например 
    о времени безотказной работы или времени реагирования. Таким образом, если соглашение SLA является 
    формальным соглашением между вами и клиентом, то SLO — это отдельные обещания, которые вы даете 
    клиенту. Соглашения SLO формируют ожидания клиентов и показывают командам ИТ и DevOps, каких целей 
    они должны достичь и на какие показатели ориентироваться.
    SLI Индикатор уровня обслуживания (SLI) измеряет соответствие цели уровня обслуживания (SLO). 
    Например, если в SLA указано, что системы будут доступны 99,95 % времени, то в качестве SLO, 
    вероятно, будет выбрано время безотказной работы 99,95 %, а в качестве SLI — фактическое измеренное 
    время безотказной работы. Возможно, оно составит 99,96 %. Или 99,99 %. Чтобы удовлетворять 
    требованиям SLA, индикатор SLI должен соответствовать обещаниям, зафиксированным в этом документе, 
    или превосходить их.

100. Архитектура системы для сбора логов, ELK, EFK etc. Как сохранить логи при отказе хранилища? Нужно ли использовать для этого брокер сообщений? Нужно ли делать throttling/rate limits?

101. Prometheus long-term storage. Какие варианты?

102. Как работает Prometheus?

    use prometheus exporters

103. В чем принципиальное отличие между Grafana и Kibana?

    The main use of Grafana is the analysis and visualization of metrics. Kibana is focused on logs 
    and other log-dependent uses such as forensics and security.The main use of Grafana is the analysis
     and visualization of metrics. Kibana is focused on logs and other log-dependent uses such as forensics 
     and security.

104. В чем главное отличие между Ansible and Terraform?

    terraform for provisioning
    ansible for configuration 

105. Что такое SAAS monitoring и какие виды знаете?

106. Если вы используете Datadog/NewRelic, то как нам отслеживать падение инструментов мониторинга?

107. Что такое distributed tracing и error tracking systems? Как вы думаете, когда следует их использовать?

 

Information Security

108. В чем разница между RBAC и ABAC?

    Role-based access control (RBAC) Суть подхода заключается в создании ролей, повторяющих бизнес-роли 
    в компании, и присваивание их пользователям. На основе этих ролей проверяется возможность выполнения 
    пользователем того или иного действия.
    Attribute-based access control (ABAC) Основное отличие этого подхода в том, что каждая ситуация 
    оценивается не с точки зрения роли пользователя и действия, которое он хочет совершить, а с точки 
    зрения атрибутов, которые к ним относятся.

109. В чем заключается XSS атака? SQL injection? Что такое CSP?

    XSS — тип атаки на веб-системы, заключающийся во внедрении в выдаваемую веб-системой страницу вредоносного 
    кода и взаимодействии этого кода с веб-сервером злоумышленника.
    SQL injection - атака на базу данных, которая позволит выполнить некоторое действие, которое не 
    планировалось создателем скрипта.
    CSP (Content Security Policy) — стандарт защиты сайтов от атак с внедрением контента, например XSS — межсайтового
     скриптинга. CSP описывает безопасные источники загрузки и блокирует ресурсы, которые не входят в «белый список».

110. Какие базовые меры можно предпринять для защиты SSH-соединения?

    Защита средствами фаервол
    Авторизация по паролю
    Установка ssh-сервера на другой порт
    Доступ по ключам
    vpn

111. Root-пароль неизвестен или потерян. Какова процедура восстановления?

112. Как управлять правами на файловой системе в Linux?

    chmod, chown, chgrp

113. Что такое Firewall?

    Межсетево́й экра́н, сетево́й экра́н — программный или программно-аппаратный элемент компьютерной сети, 
    осуществляющий контроль и фильтрацию проходящего через него сетевого трафика в соответствии с заданными правилами.

114. Чем отличается stateless от stateful фаерволов?

    Stateless брандмауэры отслеживают сетевой трафик и ограничивают или блокируют пакеты на основе адресов 
    источника и получателя или других статических значений.
    Stateful Брандмауэры  могут наблюдать потоки трафика от начала до конца. Они знают о различных способах 
    прохождения трафика и могут реализовывать различные функции IP-безопасности (IPsec), такие как туннели и 
    шифрование.

115. Сколько таблиц в iptables?

    raw - предназначена для обработки пакетов прежде, чем они будут переданы системе conntrack, которая 
    занимается отслеживанием состояния соединений и принадлежностью пакетов этим соединениям. Содержит 
    встроенные цепочки PREROUTING и OUTPUT.
    mangle - используется для модификации некоторых заголовков (TTL, TOS) и маркировке пакетов и соединений, 
    содержит цепочки PREROUTING, INPUT, FORWARD, OUTPUT и POSTROUTING.
    nat - предназначен для преобразования адресов и портов источника и назначения пакетов, 
    встроенные цепочки: PREROUTING, OUTPUT, POSTROUTING.
    filter - применяется, собственно, для фильтрации пакетов, является таблицей по умолчанию, т.е. 
    если таблица не указана явно, то используется filter, имеет цепочки INPUT, FORWARD и OUTPUT.
    security - используется для работы совместно с системами принудительного контроля доступа, 
    такими как SELinux. Встроенные цепочки INPUT, FORWARD, OUTPUT.

116. Можно ли настроить трансляцию NAT с помощью iptables? Какую таблицу следует использовать?

    iptables -t nat -A POSTROUTING -o ens33 -s 192.168.100.0/24 -j 
    iptables -t nat -A POSTROUTING -o ens33 -s 192.168.100.0/24 -j MASQUERADE

117. Какую таблицу используют для смены заголовков пакетов?

    mangle

118. Если вам ломают Linux-сервер, то как более эффективно блокировать трафик с IP-адресов?

    при обнаружении активности - sudo iptables -t filter -A INPUT -s 8.8.8.8/32 -j DROP.

119. Принцип работы GCP Firewall: можем ли мы профильтровать трафик на Load Balancer?

    Google Cloud doesn't allow certain IP protocols, such as egress traffic on TCP port 25 within 
    a VPC network. For more information, see always blocked traffic.
    Google Cloud always allows communication between a VM instance and its corresponding metadata 
    server at 169.254.169.254. For more information, see always allowed traffic.
    Every network has two implied firewall rules that permit outgoing connections and block 
    incoming connections. Firewall rules that you create can override these implied rules.
    The default network is pre-populated with firewall rules that you can delete or modify.

120. Что такое SELinux?

    SELinux — система принудительного контроля доступа на уровне ядра

121. Можно ли полностью отключить SELinux на лету?

    Для отключения SELinux потребуется перезагрузить систему с передачей параметра "selinux=0" в командной строке ядра.

122. С какими secrets management systems вы работали?

    docker secrets
    github secrets

123. У нас есть сервер NAT, и мы хотим обеспечить доступ по IP к серверу снаружи. Как нам это реализовать?

    iptables -t nat -A POSTROUTING -s 10.2.0.0/24 -o eth1 -j SNAT --to-source 84.201.168.122

123. Чтобы попасть на сервер клиента, нужно залогиниться на 4+ jump хоста. Как автоматизировать? Где мы будем хранить наш SSH-ключ?

    use ssh-tunnel
 

Development

125. Что такое cookies? Зачем нужны? JWT?

    Ку́ки — небольшой фрагмент данных, отправленный веб-сервером и хранимый на компьютере пользователя. 
    Веб-клиент всякий раз при попытке открыть страницу соответствующего сайта пересылает этот фрагмент 
    данных веб-серверу в составе HTTP-запроса.
    JSON Web Token — это открытый стандарт для создания токенов доступа, основанный на формате JSON. 
    Как правило, используется для передачи данных для аутентификации в клиент-серверных приложениях.

126. Что такое feature toggles и зачем они?

    Допустим, вы хотите разработать новую фичу, но не уверены, что она понравится пользователям, 
    и вам нужно иметь способ безболезненно её скрыть. Или предположим, что вы работаете над новой 
    большой фичей и хотите избежать монстр-коммитов. Или просто хочется сделать поведение сайта легко конфигурируемым. 

127. Что такое TDD (Test Driven Development) и BDD (Behaviour Driven Development)?

    Разработка через тестирование — техника разработки программного обеспечения, которая основывается 
    на повторении очень коротких циклов разработки: сначала пишется тест, покрывающий желаемое изменение, 
    затем пишется код, который позволит пройти тест, и под конец проводится рефакторинг нового кода
    BDD — это методология разработки программного обеспечения, являющаяся ответвлением от методологии 
    разработки через тестирование.

Databases

128. Что такое индекс и что такое ключ?

    Индекс, как и ключ, представляет собой своеобразное оглавление таблицы, просмотр которого выполняется 
    перед обращением к ее записям

129. Каковы преимущества и недостатки индексов?

    однозначно идентифицировать записи;
    избегать дублирования значений в ключевых полях;
    выполнять сортировку таблиц;
    ускорять операции поиска в таблицах;
    устанавливать связи между отдельными таблицами БД;
    использовать ограничения ссылочной целостности.

130. Представьте, что вы разрабатываете систему биллинга, которая должна обрабатывать тысячи счетов. Какую стратегию обновления данных вы бы выбрали?

131. Какие методы чаще всего используют для масштабирования реляционных баз данных?

    Существует множество методов масштабирования реляционной базы данных: репликация «ведущий-ведомый», 
    репликация «ведущий-ведущий», федерация, шардинг, денормализация и настройка SQL

132. Опишите механизм транзакций БД.

    Транзакция это последовательное выполнение операций чтения и записи. Окончанием транзакции может 
    быть либо сохранение изменений (фиксация, commit) либо отмена изменений (откат, rollback). 
    Применительно к БД транзакция это нескольких запросов, которые трактуются как единый запрос.

133. Как мы можем удалить таблицу или базу данных?

    DROP TABLE table1_name, table2_name, ...;
    DROP DATABASE demo;

134. Как найти медленные запросы в MySQL/PostgreSQL?

    log_min_duration_statement
    Когда вы знаете, какое максимальное время выполнения запроса приемлемо, вы можете указать PostgreSQL 
    регистрировать операторы, которые занимают больше времени, добавив это в postgresql.conf:
    log_min_duration_statement=5000

135. Какие SQL-операторы манипулирования данными вы знаете?

    операция удаления записей — DELETE, 
    операция добавления или ввода новых записей — INSERT 
    операция изменения (обновления записей) — UPDATE.

136. Можно ли вывести список баз данных/таблиц через CLI? Как мы можем переключаться между базами данных MySQL/PostgreSQL?

    SHOW DATABASES
    USE db_name

137. Какие storage engines в MySQL вы знаете? Какие отличия?

    InnoDB.
    MyISAM.

138. Как реализована репликация MySQL master-master? Сколько серверов MySQL может быть задействовано в таком взаимодействии?

    Master-Master репликация в MySQL используется распределения нагрузки на базу данных между несколькими серверами.
    
139. Как работает репликация MySQL/PostgreSQL? Какие параметры должны быть настроены для репликации?

    В общем виде, репликация в MySQL состоит из трех шагов: Мастер-сервер записывает изменения 
    данных в журнал. Этот журнал называется двоичным журналом (binary log), а изменения — событиями 
    двоичного журнала. Слейв копирует изменения двоичного журнала в свой, который называется журналом 
    ретрансляции (relay log).

140. Сравните SQL и NoSQL.

    Реляционная база данных (SQL) — база, где данные хранятся в формате таблиц, они строго структурированы 
    и связаны друг с другом. В таблице есть строки и столбцы, каждая строка представляет отдельную запись, 
    а столбец — поле с назначенным ей типом данных. В каждой ячейке информация записана по шаблону.
    Нереляционная база данных (NoSQL) — хранит данные без четких связей друг с другом и четкой структуры. 
    Вместо структурированных таблиц внутри базы находится множество разнородных документов, в том числе 
    изображения, видео и даже публикации в социальных сетях. В отличие от реляционных БД, NoSQL базы данных 
    не поддерживают запросы SQL.

141. Sharding vs replication?

    replication - creates additional copies of the data and allows for automatic failover to another node. 
    Replication may help with horizontal scaling of reads if you are OK to read data that potentially isn't the latest.
    sharding - allows for horizontal scaling of data writes by partitioning data across multiple servers 
    using a shard key. It's important to choose a good shard key. For example, a poor choice of shard key 
    could lead to "hot spots" of data only being written on a single shard.

142. Какие есть виды индексов? Когда и зачем использовать?

    B-Tree. Семейство B-Tree индексов — это наиболее часто используемый тип индексов, организованных как 
    сбалансированное дерево, упорядоченных ключей. ...
    Пространственные индексы ...
    HASH. ...
    Bitmap. ...
    Reverse index. ...
    Inverted index. ...
    Partial index. ...
    Function-based index.

143. Требования к схеме БД. Character sets, collations, default, not null и т. д.

144. Мы мигрируем MySQL/PostgreSQL из on-prem в облако. Как нам это сделать с минимальным даунтаймом?

145. Зачем и как тестировать перформанс баз данных?

 

Практические задания

146. Напишите Terraform module для инфраструктуры тестового сервиса в AWS.

147. Напишите hello-world программу на ваш выбор и сформируйте для нее helm chart/kustomize.

148. Как организовать деплой без downtime?

149. Опишите способы troubleshooting для Docker-контейнера.

150. Разобрать и объяснить структуру CI/CD pipeline (на примере gitlab.yml).

151. Продемонстрируйте навыки работы с GitOps, опишите деплоймент простенькой программы.

152. Как организовать деплой веб-приложения, запущенный на нескольких серверах без (или с минимальным) downtime?

153. Как с помощью Ansible узнать default gateway для пула серверов, и, если он отличается от желаемого, записать строчку «hostname: gateway» в файл на локальной машине?

 

Senior

 

Linux

1. Что может создавать высокую нагрузку на CPU (процессы приложений потребляют очень мало ресурсов CPU)?

2. У нас нет команд ifconfig, ip, и поставить мы их не можем. Как нам узнать ip address, mask, network, routes?

3. Что такое suid, sgid и sticky?

    Setuid – это бит разрешения, который позволяет пользователю запускать исполняемый файл с правами владельца 
    этого файла
    Принцип работы Setgid очень похож на setuid с отличием, что файл будет запускаться пользователем от имени 
    группы, которая владеет файлом. 
    Последний специальный бит разрешения – это Sticky Bit . В случае, если этот бит установлен для папки, то 
    файлы в этой папке могут быть удалены только их владельцем.

4. Что тюнилось с системой для нагрузки трафика 1GB, 10G, 40G+?

5. Что тюнилось с системой для высокой нагрузки на диск?

6. Что такое Linux namespaces?

7. Что такое Ceph, как работает?

8. Что нужно тюнить для Ceph?

9. Что произойдет, если /dev/sda1 перенесем в /root?

10. Мы удалили /dev/sda1. Как нам его восстановить? Что такое pseudo-devices?

11. Нам хакнули сервер, и в директории /var/www создали два миллиона файлов небольшого размера. Если использовать команду cd /var/www и затем rm -rf*, то у нас зависнет терминал. Как удалить файлы?

12. На каком уровне работает iptables?

13. Что такое eBPF и зачем нужен?

14. У вас есть файл, содержащий IP-адреса серверов (по одному в строке). Есть SSH доступ к этим машинам, и вам нужно выполнить задание (например, установить список пакетов на все узлы). Объясните, как можно это сделать.

 

Networking

15. В чем отличия между IPv4 и IPv6? Зачем мы мигрируем на IPv6?

16. Сосуществование IPv4 и IPv6: что это значит?

17. Действительно ли работают межсетевые экраны с поддержкой IPv6?

18. Как работает DHCPv6? Чем она отличается от DHCPv4?

19. Как фрагментируются пакеты IPv6 и чем это отличается от IPv4?

20. Нужно ли с IPv6 больше использовать NAT?

21. Что такое DPDK?

22. Что такое SR-IOV? В чем разница между DPDK и SR-IOV?

23. Что такое NetFlow и зачем нужен?

24. Что такое OpenFlow?

25.Что такое SDN и какие контроллеры вы знаете? Сравните контроллеры.

 

Разное

26. Что такое SDLC?

27. Расскажите о последнем опыте реализации архитектуры для сервиса.

28. Какой самый тяжелый скрипт писали?

29. Что такое configuration drift? Почему это происходит и как это усложняет жизнь инженерам\SRE\Ops?

30. Расскажите об архитектуре, за которую вы отвечаете, и укажите, как она масштабирована и отказоустойчива.

31. Назовите три важных KPI для DevOps-специалиста.

32. Как работает Kafka (clusters(brokers, controllers), topics, partitions)?

33. GitOps: Rancher Fleet vs Flux vs Argo?

34. Как использовать GitOps для обновления документации DevOps-приложений?

35. Расскажите об особенностях проектирования Kubernetes on-premise.

36. Как организовать On-call процесс для команды DevOps?

37. Опишите главные шаги загрузки операционной системы Linux.

 

Container orchestration

38. Service mesh. Что это такое и зачем нужно?

39. Cluster federation. Что это такое и зачем нужно?

40. Pod fine-grained access. Как реализовать? IRSA vs kube2iam vs kiam?

41. Как реализованы услуги в кубернетах?

42. Как дебажить трафик контейнера?

43. Что такое unikernel и зачем он нужен?

44. Почему коммьюнити переезжает из Docker containerd?

 

Clouds and Automation

45. Какие преимущества и недостатки cloud-провайдеров?

46. Cost оптимизация. Какие инструменты? Spot/preemptible instances, reservations?

47. Как организовать multi-account, multi-region cloud setup?

48. В чем разница между частными и публичными сетями в AWS?

49. AWS Lambda: имели ли опыт работы?

50. Когда следует переходить на AWS Lambda? Когда не стоит? Аналогичные решения в GCP или Kubernetes?

51. Когда лучше использовать CloudFormation, а когда Terraform?

 

CI/CD

52. Что такое state в контексте использования Terraform?

53. Какие существуют branching strategy? На что опираться при выборе?

54. Как реализовать feature/dynamic environments?

55. Как сделать эмуляцию ресурсов cloud-провайдера для локального тестирования и ускорения разработки?

56. Что такое MultiCloud?

57. Что такое Cloud-Agnostic и когда он потребуется?

58. Что такое Hybrid-Cloud и с какими решениями вы работали?

 

Information Security

59. Как должны храниться пароли в базах данных (Salt&Pepper, Rainbow Tables, Adaptive Hashing)?

60. Как передавать секреты в application (Secrets management)?

61. Сравните CI/CD SAST и DAST?

62. Какие вы знаете Kubernetes security practices? RBAC? OPA? Какие недостатки RBAC и какие кейсы знаете?

63. Расскажите о защите от DDOS атак, WAF.

64. Что такое Rootless containers и для чего он нужен?

65. Что такое AppArmor и Seccomp и зачем они нужны?

66. Приходилось ли работать с Falco? Если да, то что реализовывали?

67. HashiCorp Vault и как правильно передать нам секреты в контейнере и CI pipeline?

68. Что такое Admission Controllers и какие вы использовали?

69. Как хранятся секреты etcd? Как просмотреть ресурсы в etcd?

70. Чем проверяете на уязвимости ваш Kubernetes cluster?

71. Что такое Secure SDLC?

72. Что вы знаете о Cloud Infrastructure Attack via a Pull Request и как этого избежать?

 

Observability

73. Что такое observability и чем отличается от обычного мониторинга? Какие особенности необходимо учитывать в микросервисной архитектуре (tracing)?

74. Что такое SLI, SLO, SLA и зачем они нужны? Для чего используют error budget?

 

Databases

75. Что такое теорема CAP? Зачем это нужно?

76. Как работать с миграциями? Что делать в случае rollback? Как проверить, что миграция backward-compatible?

77. Опишите, как бы вы оптимизировали работу базы данных? (БД по выбору кандидата) Slow queries, buffers, thread pools?

78. Зачем нужно тестировать перформанс базы данных и какими инструментами?

 

Практические задания

79. Представьте, что вы CTO Booking или Airbnb. Какие бы вы принимали решения касательно:

языков программирования.
Infrastructure as a Code.
архитектуры инфраструктуры.
настройки CI/CD.
80. У вас есть файл, содержащий патчи в директории. Например:

/var/tmp/temp/file1.c

/var/tmp/file.ext

/var/tmp/temp/

etc... один путь в строке. Если путь заканчивается на '/' — это путь в каталог. Вам нужно восстановить это дерево каталогов с пустыми файлами в другой файловой системе. Напишите bash-скрипт.

81. Представьте, что вам нужно убедить Spotify, использующего AWS, перейти на GCP. Как вы будете мотивировать Spotify мигрировать на GCP?

82. Есть сервисная компания, предоставляющая сервис трекинга перевозок. Есть клиенты, которые не желают, чтобы их данные процессировались в AWS. Как нам реализовать multi-cloud solution?

